package com.shell.governor.user.dao;

import com.shell.bee.persistence.mapper.BaseMapper;
import com.shell.governor.user.po.PubUser;
import com.shell.governor.user.vo.PubUserVo;
import com.shell.governor.user.vo.UserQueryVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public abstract interface PubUserDao extends BaseMapper<PubUser> {
	public abstract int deleteUser(PubUser paramPubUser);

	public abstract int updateState(@Param("userState") String paramString1, @Param("userId") String paramString2,
			@Param("entId") String paramString3);

	public abstract List<PubUserVo> selectUsers(PubUser paramPubUser);

	public abstract List<PubUser> selectUsersByRoleCodes(@Param("organId") String paramString,
			@Param("roleCodes") String... paramVarArgs);

	public abstract List<PubUserVo> selectUserVoByCode(@Param("organCode") String paramString1,
			@Param("roleCode") String paramString2);

	public abstract List<PubUser> selectUsersByUserNamesWithOrgan(@Param("organId") String paramString,
			@Param("userNames") String... paramVarArgs);

	public abstract List<PubUser> selectUsersByUserNames(@Param("userNames") String... paramVarArgs);

	public abstract List<PubUser> selectUserByIdRole(@Param("userId") String paramString1,
			@Param("roleCode") String paramString2);

	public abstract int updateUsersPassword(@Param("organId") String paramString1,
			@Param("newPassword") String paramString2);

	public abstract List<PubUser> selectUserByRoleId(@Param("roleId") String paramString);

	public abstract List<PubUserVo> selectEntUsersByPage(PubUserVo paramPubUserVo);

	public abstract List<String> selectByResCodeAndOrgId(@Param("organId") String paramString,
			@Param("resCode") String[] paramArrayOfString);

	public abstract int updateUsersStateByCreatorId(@Param("creatorId") String paramString1,
			@Param("userState") String paramString2);

	public abstract List<PubUserVo> selectUserByRoleCodeAndEntId(@Param("entId") String paramString1,
			@Param("roleCode") String paramString2);

	public abstract List<PubUserVo> selectAllUserForEnt(@Param("entId") String paramString);

	public abstract List<PubUserVo> selectUserForApr(UserQueryVo paramUserQueryVo);

	public abstract List<PubUserVo> queryUser(UserQueryVo paramUserQueryVo);

	public abstract List<PubUser> selectUserByPhone(@Param("userPhone") String paramString);

	public abstract void updatePasswordExcludeAdmin(@Param("password") String paramString);
}
